<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>聚光灯特效(HTML/CSS)</title>
  <style>
    html {
      font-size: 16px;
    }
    body {
      display:flex;
      flex-direction: column;
      background: #222;
      justify-content:center;
      align-items:center;
      min-height:100vh;
    }
    h1 {
      color: #333;
      font-family: Helvetica;
      margin: 0;
      padding: 0;
      font-size: 8rem;
      letter-spacing: -0.3rem;
      position:relative;
    }
    h1::after{
      content: attr(data-msg);
      position:absolute;
      top:0;
      left:0;
      color: transparent;
      background: linear-gradient(45deg, red,rgb(163, 26, 175));
      background-size: 150%;
      -webkit-background-clip: text;
      background-clip: text;
      clip-path: ellipse( 100px 100px at 0% 50%);
      animation: shake 4s ease-in-out infinite;
    }
    p {
      margin-top: 40px;
      color: #fff;
    }
    li {
      color: #fff;
    }
    @keyframes shake {
      0% {
        clip-path: ellipse( 100px 100px at 0% 50%);
      }
      50% {
        clip-path: ellipse( 100px 100px at 100% 50%);
      }
      100% {
        clip-path: ellipse( 100px 100px at 0% 50%);
      }
    }
  </style>
</head>
<body>
  <h1 data-msg="CodingStartup!">CodingStartup</h1>
  <p>原理： 使用伪元素 重叠造成双层结构  使用clip-path： ellipse( '圆滑值' '圆滑值' at X位置[百分比] Y位置[百分比]) 确定遮罩位置</p>
  <ol>
    <li>顺便学习: date-  自定义属性  使用自定义属性 attr(自定义属性)</li>
    <li>background-clip: text; 只给文字部分上背景  兼容有问题 需要添加 -webkit-</li>
  </ol>
</body>
</html>